package base.template;

class Building{}
class House extends Building{}

public class ClassTypeCapture<T> {
	Class<T> kind;
	public ClassTypeCapture(Class<T> kind){
		this.kind=kind;
	}
	public boolean f(Object arg){
		return kind.isInstance(arg);
	}
	public static void main(String[] args) {
		ClassTypeCapture<Building> c1=new ClassTypeCapture<Building>(Building.class);
		System.out.println(c1.f(new Building()));
		System.out.println(c1.f(new House()));
		
		ClassTypeCapture<House> c2=new ClassTypeCapture<House>(House.class);
		System.out.println(c2.f(new Building()));
		System.out.println(c2.f(new House()));
		
	}
}
